Модуль:Animal
local p = {} local arrData = mw.loadData( 'Module:DataAnimal' ) local total=0 --Список животных одной категории--* function p.animalList(frame) local id = frame.args1 local data=getanimal() local text="" for k, v in ipairs(data) do if v.tp id then text=text.."".. ""..v.level.."50px".. ""..v.name.."".. ""..v.buy.."".. ""..v.prod.."".. ""..v.sell.."".. ""..v.tm.."".. ""..v.rez.."".. ""..v.res.."".. "".. "Всего: "..total.."".. "".. "Уровень ".. "Животные ".. "Покупка ".. "Продукт ".. "Продажа 15px".. "Рост, мин/th>".. "Доход в час 15px".. "Загон".. "Корм".. "Локация".. ""..text.. "" end --Список всех животных-- function p.alllist() local data=getanimal() local text="" for i, v in ipairs(data) do text=text.."".. ""..v.level.."50px".. ""..v.name.."".. ""..v.buy.."".. ""..v.prod.."".. ""..v.sell.."".. ""..v.tm.."".. ""..v.rez.."".. ""..v.res.."".. ""..v.location.."".. "" total=total+1 end return " ".. " Всего: "..total.." ".. " ".. " Уровень ".. " Животные ".. " Покупка ".. " Продукт ".. " Продажа 15px ".. " Рост, мин ".. " Доход в час 15px ".. " Загон ".. " Корм ".. " Категория ".. " Локация ".. " "..text.. " " end --Получить список животных-- function getanimal() local data={} local i=1 for key, v in pairs(arrData) do datai={name=v.name, tp=v.tp} datai.res=(v.res '') and '' or''..v.res..'' datai.buy =(v.buy~=0) and v.buy or v.buyagro..'15px' datai.level =(v.buy~=0) and v.level or v.levelagro datai.tm =(v.tm 0) and '' or v.tm datai.sell =(v.sell 0) and '' or v.sell datai.prod =(v.nameprod '') and v.name or v.nameprod datai.corall =(v.corall '') and '' or ''..v.corall..'' datai.rez =(v.tm~=0 and v.sell~=0) and math.floor(v.sell/v.tm*100)/100*60 or '-' datai.location =(v.location '') and 'Любые' or ''..v.location..'' if datai.level 0 then datai.level='' else datai.level="c "..datai.level.." ур. " end i=i+1 end table.sort(data,function( a, b ) return a.name < b.name end ) return data end --Карточка животного-- function p.animal( frame ) local id = frame.args1 local text="" text=text..' [['..arrDataid.tp1..']] / [['..arrDataid.tp..']] / '..id..' '.. ' Общие сведения '.. ' 200px '.. ' '..id..' '.. ' [[Файл:'..arrDataid.nameprod..'.png|50px]] '..arrDataid.nameprod..' '.. ' Рост: �� ' --Расчет роста часы-минуты-- if arrDataid.tm>60 then text=text..(arrDataid.tm/60)..' час.,' else text=text..arrDataid.tm..' мин.,' end --Доход-- text=text..' доход: ' if arrDataid.tm~=0 and arrDataid.sell~=0 then text=text..(math.floor(arrDataid.sell/arrDataid.tm*100)/100)*60 else text=text..'-' end text=text..' 15px в час '.. ' Покупка ('..id..') Продажа ('..arrDataid.nameprod..') ' text=text..' ' if arrDataid.buy~=0 then text=text..' '..arrDataid.buy..' 15px ' else text=text..' '..arrDataid.buyagro..' 15px ' end text=text..' '..arrDataid.sell..' 15px ' --Окупаемость-- if arrDataid.tm~=0 and arrDataid.buyagro 0 then text=text..' Покупка животного окупится через ' if arrDataid.tm<60 then text=text..(math.floor(arrDataid.buy/arrDataid.sell*arrDataid.tm/24*100)/100)..' часов' else text=text..(math.floor(arrDataid.buy/arrDataid.sell*arrDataid.tm/60/24*100)/100)..' дней' end text=text..', для этого нужно снять '..(math.floor(arrDataid.buy/arrDataid.sell*100)/100)..' урожаев. ' elseif arrDataid.buyagro>0 then text=text..' Окупаемость животного вычислить нельзя, т.к. животное покупается за агробаксы. ' end --Уровень- text=text..' Животное можно купить:'.. ' ' if arrDataid.buy~=0 then text=text..' с '..arrDataid.level..' уровня за '..arrDataid.buy..' 15px ' end if arrDataid.buyagro~=0 then text=text..' с '..arrDataid.levelagro..' уровня за '..arrDataid.buyagro..' 15px ' end local ok, msg = pcall(function () if arrDataid.buyagro1 nil then error() end end) if ok then text=text..' с '..arrDataid.levelagro1..' уровня за '..arrDataid.buyagro1..' 15px ' end text=text..' ' text=text..' Корм для животного: ' if arrDataid.res '' then text=text..'Не требуется. Продукция производится автоматически.' else text=text..'[['..arrDataid.res..']]' end text=text..' ' text=text..' Можно выращивать в поле и промзоне. '.. ' '.. ' Локация ' if arrDataid.location '' then text=text..' Можно выращивать в любой локации. ' else text=text..' Можно выращивать только в локации "'..arrDataid.location..'". ' end text=text..' Загружается на фабрики '..(require("Module:Factory").fab(arrDataid.nameprod)).. ' Выращивается в загонах ' if pcall(function () if arrDataid.yncorall nil then error() end end) then if arrDataid.yncorall 1 then text=text..'Животное можно выращивать только в загоне [['..arrDataid.corall..']].' end if arrDataid.yncorall 2 then text=text..'Животное можно выращивать как в загоне [['..arrDataid.corall..']], так и без него.' end if arrDataid.yncorall 0 then text=text..'Животное выращивается без загона.' end else text=text..'Информации о загоне для этого животного пока нет.' end text=text..'Category:Животные'.. '[[Category:'..arrDataid.tp..']]' return text end --Список животных,которые едят корм-- function p.fab(frame) local id=type(frame) 'string'and frame or frame.args1 local arrData = mw.loadData( 'Module:DataAnimal' ) local data={} local i=1 for key,v in pairs(arrData) do if v.res id then datai={name=v.name} i=i+1 end end local text=' Можно скормить животным: ' if pcall(function () if data1.name nil then error() end end) then text=text..' ' table.sort(data,function( a, b ) return a.name < b.name end ) for i,v in ipairs(data) do text=text..' '..v.name..' ' end text=text..' ' else text=text..'Пока никому ' end return text end --Список продукци животных-- function p.product() local text=' ' data={} local j=1 for key,v in pairs(arrData) do dataj={fab=key, name=v.nameprod} j=j+1 end table.sort(data,function( a, b ) return a.name < b.name end ) for i,v in ipairs(data) do if i 1 then text=text....string.sub (v.name, 1,2)..' '..v.name..' ' else if string.sub (datai.name, 1,2)>string.sub (datai-1.name, 1,2) then text=text..' '....string.sub (v.name, 1,2)..' ' end if datai-1.name~=datai.name then text=text..' '..v.name..' ' end end end text=text..' ' return text end function p.list(frame) local id = frame.args1 local text='' local data=getanimal() if #data 0 then return '' end text=text..' Животные > '..id..' '.. ' Общие сведения '.. '50px '..id..''.. ' ' ..id..' производится животными: ' if #data>1 then table.sort(data,function( a, b ) return a.name < b.name end ) end text=text.." " for k, v in ipairs(data) do if v.prod id then text=text..' '..v.name..' ' end end text=text.." " return text end return p